package com.lanmao.emc.config;

import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
 * 描述：
 *
 * @author lanmao
 * @since 2024年11月11日 20:38
 */
@ConditionalOnWebApplication
@ConfigurationProperties(prefix = UpgradeProperties.PREFIX)
public class UpgradeProperties {

    public static final String PREFIX = "es.upgrade";

    /**
     * 升级策略，有三种
     * 1 multi_version 多版本管理模式，支持留存多版本，回滚操作
     * 2 one_migration 单次迁移模式 迁移完带后缀，再次迁移不带后缀
     * 3 two_migration 两次迁移模式 性能最差，迁移完索引名保持不变
     */
    private String strategy = "multi_version";

    /**
     * flyway存储数据源，默认es，支持mysql、pgsql
     */
    private String dbType = "elasticsearch";

    /**
     * multi_version 升级策略下的版本留存数量，默认为1
     */
    private Integer count = 1;

    /**
     * 索引存放目录，默认为indices
     */
    private String dir = "indices";

    public String getStrategy() {
        return strategy;
    }

    public String getDbType() {
        return dbType;
    }

    public void setDbType(String dbType) {
        this.dbType = dbType;
    }

    public void setStrategy(String strategy) {
        this.strategy = strategy;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public String getDir() {
        return dir;
    }

    public void setDir(String dir) {
        this.dir = dir;
    }
}